声明 模块 "events" {

    //@@{ 内部:internal, 事件发生器_:EventEmitter }
    类别 内部 扩展 NodeJS.事件发生器_ { }

    //@@{ 内部:internal }
    名域 内部 {

        //@@{ 一次:once, 事件发生器_:EventEmitter, 预设_:Promise }
        函数 一次(发射器: 事件发生器_, 事件: 文字 | 符号): 预设_<任意>;

         //@@{ 事件发生器_:EventEmitter, 内部:internal }
         类别 事件发生器_ 扩展 内部 {
            /** @deprecated since v4.0.0 */

            //@@{ 监听者数量:listenerCount, 事件发生器_:EventEmitter }
            静态 监听者数量(发射器: 事件发生器_, 事件: 文字 | 符号): 数字;

            //@@{ 默认最大监听器:defaultMaxListeners }
            静态 默认最大监听器: 数字;

            //@@{ 添加监听器:addListener }
            添加监听器(事件: 文字 | 符号, 监听器: (...参数组: 任意[]) => 无值): 本体;

            //@@{ 正在:on }
            正在(事件: 文字 | 符号, 监听器: (...参数组: 任意[]) => 无值): 本体;

            //@@{ 一次:once }
            一次(事件: 文字 | 符号, 监听器: (...参数组: 任意[]) => 无值): 本体;

            //@@{ 预处理监听器:prependListener }
            预处理监听器(事件: 文字 | 符号, 监听器: (...参数组: 任意[]) => 无值): 本体;

            //@@{ 预处理一次监听器:prependOnceListener }
            预处理一次监听器(事件: 文字 | 符号, 监听器: (...参数组: 任意[]) => 无值): 本体;

            //@@{ 移除监听器:removeListener }
            移除监听器(事件: 文字 | 符号, 监听器: (...参数组: 任意[]) => 无值): 本体;

            //@@{ 关:off }
            关(事件: 文字 | 符号, 监听器: (...参数组: 任意[]) => 无值): 本体;

            //@@{ 删除所有监听器:removeAllListeners }
            删除所有监听器(事件?: 文字 | 符号): 本体;

            //@@{ 设置最大监听器:setMaxListeners }
            设置最大监听器(n: 数字): 本体;

            //@@{ 获取最大监听器:getMaxListeners }
            获取最大监听器(): 数字;

            //@@{ 监听者:listeners, 函数_:Function }
            监听者(事件: 文字 | 符号): 函数_[];

            //@@{ 原始监听者:rawListeners, 函数_:Function }
            原始监听者(事件: 文字 | 符号): 函数_[];

            //@@{ 发出:emit }
            发出(事件: 文字 | 符号, ...参数组: 任意[]): 真假;

            //@@{ 事件名称:eventNames, 数组_:Array }
            事件名称(): 数组_<文字 | 符号>;

            //@@{ 监听者数量:listenerCount }
            监听者数量(类型: 文字 | 符号): 数字;
        }
    }

    //@@{ 内部:internal }
    导出 = 内部;
}
